<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test01</title>
</head>
<body>
<script type="text/javascript">
    let map01 = new Map();

    console.dir(map01);
    let arr02 = [["a", 10], ["b", 20], ["c", 30]];
    let map02 = new Map(arr02);

    console.dir(map02);

    let arr03 = Array.from(map02);

    console.dir(arr03);

    // map01.set("aa", 100);
    // map01.set("bb", 200);
    // map01.set("cc", 300);

    map01.set("aa", 100).set("bb", 200).set("cc", 300);

    console.dir(map01);

    console.dir([...map01.keys()]);
    console.dir([...map01.values()]);
    console.dir([...map01.entries()]);
    console.dir([...map01]);

    console.log(map01.size);
    console.log(map01.get("aa"));

    // for(let item of map01.keys()) {
    //     console.log(item);
    // }

    // for(let item of map01.values()) {
    //     console.log(item);
    // }

    // for (let [key, value] of map01.entries()) {
    //     // console.log(key);
    //     console.log(value);
    // }

    // for (let [key, value] of map01) {
    //     console.log(key);
    //     // console.log(value);
    // }

    map01.forEach(function (value, key) {
        console.log(key + ":" + value);
    });

    let map03 = new WeakMap();
    map03.set(arr02, 1000);

    console.dir(map03);

    console.dir(map01);

    let map04 = new Map([...map01].filter(([k, v]) => (v < 300)));
    console.dir(map04);

    let map05 = new Map([...map01].map(([k, v]) => [k, v + 1000]));
    console.dir(map05);

</script>
</body>
</html>